Interactive Sports Training System

ABSTRACT

A method, system, and apparatus, including a program encoded on computer-readable medium, for interactive training or entertainment. Each of multiple platform components interconnects with at least one other platform component and includes visual indicators, a detector substantially adjacent to each indicator for detecting a proximate game accessory, and a detector microcontroller. A main control unit receives data frames from the detectors and determines a quantity of detectors in an interconnected set of platform components based on data contained in the data frames. A memory stores a plurality of routines. The main control unit is adapted to execute a selected routine based at least in part on the determined quantity of detectors. The selected routine defines a sequence of activation of the indicators in the interconnected set of platform components.

BACKGROUND

This description relates to sports training, and more particularly to an interactive sports training system.

This description further relates to an interactive sports training system (e.g., a physical, real-world trainer) with an accompanying interactive thin client software application for mobile devices. In some implementations, the system can include or can interact with a cloud computing platform and artificial intelligence (AI) algorithms that allow players, parents, and coaches to review or customize training sessions and analyze a player's performance.

While this description refers primarily to hockey in explaining the system and its advantages, the system can be used for other sports, physical training, or physical therapy. For example, the system can be adapted to any sport involving a ball, puck, or the like, with or without a racket, stick, or the like, and requiring hand-eye coordination, accurate maneuvering, positioning, passing and shooting of a ball, puck, or the like. Therefore, similar applications can be realized in many other sports, including, but not limited to, lacrosse, tennis, soccer, football, field hockey, baseball, and basketball.

Ice hockey is a sport popular in many countries around the world, including Canada, USA, Russia, Finland, Sweden, Czechoslovakia, China, Japan, and Germany. In Canada, where the sport was invented, it is common for players as young as three years old to begin practicing their skills. Many competitive young players are on the ice an average of five hours or more per week practicing and playing. At elite levels, young players will practice two to three hours each day with at least 50% of their practice time devoted to the art of stick handling, shooting, and passing.

Typically, very little competitive, individual stick handling practice is accomplished outside of the scrimmage and game situations, either on or off the ice. During on-ice practice, players may spend time moving the puck along and around predetermined routes usually marked by small orange cones along the ice. During off-ice practice, players may spend many hours practicing stick handling, passing, and shooting in their homes, schools, parking lots, and streets using various objects such as tennis balls and rubber balls. On-ice practice is limited by the cost of renting ice time, which is expensive and continues to climb. As a result, many players practice off-ice, either by themselves or in groups.

Currently, off-ice practice methods that simulate a real game environment are limited. Players can practice together and create competitive games against each other wherein each player tries to take the puck from the opposing player or players. Players play actual games against each other (with or without keeping score), commonly referred to as ball hockey or street hockey. There are many difficulties to these methods. For example, it is often hard to find additional players of the same skill level for such practice. When one player's skills are superior to those with whom he is playing, that player gets less of a ‘real’ practice because their skills are not challenged. Also, physical space constraints may severely limit players' abilities to practice their games.

Players may also practice on their own, but when a player practices alone, whether on or off the ice, the player is denied the element of anticipation, unpredictability, and spontaneity that is integral to developing a high level of proficiency at playing the sport. In other words, when players practice by themselves, they always know in advance precisely what their next move is going to be because they must decide what to do and where and how to move the ball or puck, whether that is during stick handling, passing or shooting practice. The level of challenge available in a multi-player game is simply not present when one practices alone. On their own, players may practice moving the puck or ball from side to side as fast as they can. They can also practice passing the puck or ball to imaginary spots as well as shooting the ball against imaginary targets, or, sometimes, into goal nets. Additionally, other than striving to complete a practice drill in a shorter time, a player has little or no competitive pressure or incentive on him while practicing on his own. While time for completion is a factor in a player's overall skill set, it is only one object of his proficiency. A player's ability to respond quickly and accurately to other players' unanticipated and unknown next moves is also important—this skill, however, simply cannot be practiced or honed in such individual practice. As such, a player has no accurate way to measure his performance and improvement while performing such drills.

SUMMARY

The training system described in this specification simulates the anticipation, responsiveness and unpredictability of a physical multi-player game, which can improve a player's hand-eye coordination, stick handling, passing and shooting ability in an environment that closely approximates a multi-player hockey game. This portable, compact and affordable training system also allows a player to practice anytime and anywhere he chooses under conditions that simulate a ‘real’ competitive environment, which otherwise requires other players and a competitive physical space (e.g., a sheet of ice in the case of hockey). The training system allows users to practice stick handling, passing or shooting in a “blind,” responsive and interactive manner and is capable of providing combined improvement of maneuverability, foot speed, foot work, hand-eye coordination, reaction time and, overall, the skills required for effective stick handling, passing and shooting in a ‘real’ game of hockey. Moreover, the training system can provide a practice board that allows users to customize their training sessions and leverage AI to understand how to make improvements to their playing style and physical skills.

In some implementations, an interactive training apparatus includes a plurality of platform components. Each platform component has a substantially flat upper surface and is adapted to interconnect with at least one of the other platform components. In addition, each of the platform components includes one or more visual indicators attached to the platform component and situated at or below the upper surface of the platform component, a detector attached to the platform component substantially adjacent to each of the one or more indicators, and a detector microcontroller communicably connected to the detector. The detector is adapted to detect a presence of a game accessory in proximity to the detector. A main control unit is adapted to receive data frames from the detectors in the plurality of platform components and to determine a quantity of detectors in an interconnected set of platform components based on data contained in the data frames. A memory communicably connected to the main control unit stores a plurality of routines. The main control unit is adapted to execute a selected routine based at least in part on the determined quantity of detectors, with the selected routine defining a sequence of activation of the indicators in the interconnected set of platform components.

Implementations can include one or more of the following features. The detectors in the plurality of platform components communicate with the main control unit via at least one communication bus. The detectors in the plurality of platform components communicate with the main control unit via a daisy chain configuration. The main control unit is adapted to identify a configuration of the interconnected set of platform components based on the data contained in the data frames. Each of the detectors is a reed switch or a hall effect sensor adapted to detect a game accessory that includes an embedded magnet. In some implementations, other types of sensors or detectors (e.g., accelerometers, pulse doppler detectors and infrared detectors) can also be used. Each of the detectors is adapted to detect a game accessory that includes at least one of an embedded radio frequency identification chip or an embedded near field communication chip. The main control unit is adapted to receive data identifying a sequence and timing of the detector detecting a presence of a game accessory in proximity to the detector during execution of the selected routine and store data relating to a degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components. The main control unit is adapted to wirelessly communicate with a software application installed on a mobile device to receive an identification of a selected routine from a subset of available routines identified based at least in part on the determined quantity of detectors, receive instructions for initiating the selected routine, and communicate data relating to the degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components. At least one platform attachment is adapted to connect to the platform, and the main control unit is adapted to detect a presence of the at least one platform attachment and to execute a selected routine based at least in part on the presence of the at least one platform attachment.

In some implementations, an interactive training apparatus includes one or more indicators embedded in a platform, a plurality of detectors embedded in the platform substantially adjacent to each of the one or more indicators, a main control unit, and a memory communicably connected to the main control unit. A detector microcontroller is communicably connected to each detector, and each detector is adapted to detect a presence of a game accessory in proximity to the detector. The memory stores one or more routines. The main control unit is adapted to receive data indicating a presence of a game accessory in proximity to each of the detectors, wirelessly communicate with a mobile device executing a software application adapted to communicate with the main control unit, execute a selected routine defining a sequence of activation of the indicators in the interconnected set of platform components, and communicate, to the software application executing on the mobile device, results data relating to a degree of correspondence between the detection of the presence of a game accessory in proximity to the detector and the activation of the indicators in the interconnected set of platform components.

Implementations can include one or more of the following features. The main control unit is adapted to wirelessly link to the software application using a short-range wireless connection to authenticate a mobile device. The main control unit is adapted to receive one or more routines from the software application. The software application is adapted to communicate with at least one remote server to obtain the one or more routines. The software application is adapted to enable a user to generate the one or more routines. The software application is adapted to transmit the results data to a remote server for storage and/or analysis. The selected routine is selected in response to one or more commands from the software application identifying the selected routine. The identification of the selected routine identifies the selected routine from a plurality of available routines stored on a memory connected to the main control unit or the mobile device in wireless communication with the main control unit. The selected routine is selected from a subset of the plurality of available routines, with the subset of available routines identified based on a set of parameters selected by a user. The selected routine is selected from a subset of the plurality of available routines, with the subset of available routines identified based on a configuration of the platform identified by the main control unit. The main control unit is adapted to detect a configuration of the platform based on data contained in data frames received from the plurality of detectors.

In various implementations, the systems described in this specification may provide one or more of the following features and advantages. The interactive sports training system is adaptable for, and capable of accommodating, multiple players in time and accuracy challenges by, for example, joining several such systems either physically or wirelessly. Multiple users can pair their mobile devices, such as smart phones and tablets, and to control, to record, or to customize training on the interactive sports training system. The interactive sports training system can be used by coaches and instructors to challenge players in a simulated ‘real’ game environment without the need for renting expensive ice or practice field time. The interactive sports training system can further allow a player, parent, or coach, to track player progress or to create new, customized practice routines or to conduct random routines. Users can login to the web portal on the cloud computing platform and view statistics of gameplay on the system. Additionally, players, parents, and coaches can build their own training routines that can then be downloaded directly to firmware on the training system, utilizing a thin client application on the player's mobile device (i.e., an “app”). The use of cloud AI can additionally create new games or routines based upon performance metrics and analytics of gameplay performance for each player. The interactive sports system is capable of generating endless training routine variations so as to prevent the boredom routinely associated with repetitive practice drills. Players are also allowed to add additional playing surface modules and/or accessories to the interactive gaming system to expand the training area of the training device. By way of example, a player may add an additional mat or panel to the hockey training system such that it grows from, for example, 66 inches in length to 93 inches in length. For older, larger, or more highly skilled players, this expanded practice area allows them to refine their skills over greater distances. The interactive sports training system allows a player to practice in the dark. In total darkness, a player will be able to see the activated light source only and will have to attempt to deactivate the light source without being able to see the ball or puck he is moving.

In some implementations, the interactive sports training system is suitable for improving overall physical fitness levels. The app can measure a player's vital signs during a session by connecting to existing fitness monitor devices and displaying this data on a user's mobile device. The interactive sports training system can allow potential customers to try out and get a ‘feel’ for hockey sticks in a ‘real life’ environment before purchasing a hockey stick. In addition, the AI can record a user's performance using various stick brands and make a recommendation based on the performance it observed during sessions to help them purchase the best stick for their skills or tendencies. The interactive sports training system can monitor elapsed time, or time for completion, calories expended, heart rate and other physical fitness indexes across multiple players. This data can then be sent to the cloud and coaches can observe player data together. AI algorithms can even make predictions regarding which players perform better when in each other's company. The interactive sports training system can be used for pay-for-play, the way, for example, batting cages and video games are currently available, at various gaming places such as, but not limited to, sports retailers, restaurants, pubs, arcades, etc. The system can be used for shooting or throwing accurately at designated targets, such as the goal nets of different sports when a live goalie or defender is not available. The system can be used to record training events, rank players, and share play data with other users, coaches, parents, recruiters, or other third parties. This feature can foster competition and allow players in other geographic locations to compete with each other and enhance performance. In addition, the system can provide a platform or framework for players to submit and to exchange approved routines, wherein the routines that demonstrate greatest improvement may be purchased or downloaded by other players. The system can provide a method for improving reaction time, accuracy, agility, and hand-eye co-ordination for sports in which a ball, puck, or the like, is used, with or without a stick, or the like. A player can detect the unpredictable location of a signal to which a ball, puck, or the like, must be delivered; judge, based on the detected location of the signal, the optimal movement and position of the ball, or the like; handle the racket, or the like, so as to shoot or propel the ball, or the like, to the detected location; deliver the ball, or the like, to the detected location; and repeat the sequence of in response to additional unpredictable signal locations.

DESCRIPTION OF DRAWINGS

FIGS. 1A and 1B depict perspective views of example implementations of a training board of an interactive sports training system.

FIG. 2 is an illustrative diagram of an interactive sports training system.

FIG. 3 is a flow chart depicting an example method executable by a training software app on a mobile device.

FIG. 4 is a conceptual diagram of a training board.

FIG. 5 is a process flow diagram of a method that can be performed by the software app on a mobile device.

FIG. 6A illustrates an example configuration of a training board having two interconnected mats.

FIG. 6B illustrates an example configuration of a training board having three interconnected mats.

FIG. 7 depicts a representation of an interactive target.

FIG. 8 is a flow diagram of a process for selecting a training routine appropriate for a current training board configuration.

FIG. 9 is a flow diagram of a process for executing a training routine on a training board and analyzing performance.

FIG. 10 is a conceptual diagram of a content management system (CMS) that resides on a cloud network or in a centralized or distributed server.

FIGS. 11A and 11B are conceptual diagrams of a training system website environment through which data can be accessed by various types of users.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

In accordance with aspects described in this specification, a physical, interactive sports training system simulates the anticipation, responsiveness, and unpredictability of a real-world, multi-player sports game in which the player is competing with, or playing against, other players whose strategy, movements, and actions are neither known nor predictable. The training system can be used to require the player to respond to signals, the location, frequency, and occurrence of which are unknown and unpredictable, or respond to signals that are intentionally sequenced to produce stronger muscle memory or physical strength and endurance for specific skills through repetition. Thus, performance can improve for both known and unknown challenges. The training system can be used to improve a player's hand-eye coordination, stick handling, ball handling, passing, and shooting ability in a ‘real game’ environment, while practicing without an opponent.

FIGS. 1A and 1B depict perspective views of example implementations of a training board or platform 100 of an interactive sports training system. The training board 100 includes multiple interconnecting mats 105 having a substrate 110. In the embodiment depicted in FIGS. 1A and 1B, the substrate 110 includes a lower substrate 110 a and an upper substrate 110 b. The lower substrate 110 a can provide, for example, physical interconnection of the mats 105 using any suitable interlocking features (e.g., corresponding male tabs and female pockets or other releasable or detachable connectors). The upper substrate 110 b can provide a mounting surface for sensors and visual indicators (e.g., light sources). The training board 100 also includes a plurality of light sources 115 (or other selectively actuated visual indicators) embedded in the interconnecting mats 110 and a plurality of proximity sensors (see FIG. 4 ) also embedded in the interconnecting mats 110. The proximity sensors can, for example, be embedded within a housing of the light sources 115 or can be positioned on top of, below, or adjacent to the light sources 115. The proximity sensors can be activated upon a desired object (e.g., a hockey puck, a ball, or other object) being in close proximity to the light sources 115. The training board 100 can further include lines 120 or other markers that provide visual reference points or the like. Although not depicted in FIGS. 1A and 1B, the training board 100 can further include a planar playing surface (see FIG. 2 ) formed, for example, from a transparent or translucent epoxy or other overlay that covers the light sources 115, the proximity sensors, and the lines 120 to form a substantially flat and smooth upper playing surface (e.g., so that a puck can slide across the surface without striking ridges or protrusions). In alternative implementations, the surface could also be artificial turf (e.g., for soccer or football) or another type of surface.

The training board 100, in some implementations, includes rebound bars 125 at each end. The rebound bars 125 can be constructed of a pair of posts 130 with an elastic loop 135 stretched around and between the posts 130. The rebound bars 125 can operate to prevent a puck, ball, or the like from exiting either end of the training board 100. Depending on the degree of elasticity of the elastic loop 135, the rebound bar 125 can cause the puck to be propelled back in the general direction of the middle of the training board 100. The rebound bar may be of various lengths, heights, and elasticity, as suitable, to accommodate a particular sport or a variety of sports.

In operation, software running on a microcontroller (or microprocessor) embedded within the substrate 110 of the training board 100 and coupled to the light sources 115 and sensors controls the light sources 115 and causes specific individual light sources 115 to illuminate according to a selected training routine. For example, the light sources 115 spaced across the training board can be illuminated in a specific sequence that is unpredictable to a user. Depending on the training routine, the light sources 115 may be illuminated one at a time, where a first light source 115 is illuminated and a second light source 115 is only illuminated after the first light source 115 is deactivated. Alternatively, more than one light source 115 may be illuminated at a time or illuminated in a staggered manner, in which a first light source 115 is illuminated and then a second light source 115 is illuminated before the first light source 115 is deactivated. The illuminated light sources 115 serve to signal to the user where the user needs to deliver the puck. In some implementations, the light sources 115 can illuminate in different colors (or different light sources having different colors can be used) to signal different requirements (e.g., scores can be incremented for blue lights and decremented for red lights). In some implementations and/or in some situations, audible signals can be used in addition to or instead of illuminated light sources. To deactivate each light source 115, the puck has to be brought into close proximity to the light source 115 to cause the proximity sensor associated with that light source 115 to detect the presence of the puck. As a result, a signal from proximity sensor can be detected or received by the microcontroller, which can deactivate the light source 115 and, for example, illuminate another light source 115 according to the selected training routine. In alternative implementations, the light sources 115 may be illuminated for a predetermined amount of time regardless of whether the puck is detected in close proximity to the light source 115.

In some implementations, the level of precision, in terms of proximity, necessary to deactivate a light source 115 can vary. For example, novice users may desire a lesser degree of precision, while higher skilled users may desire the greater challenge presented by requiring a higher degree of precision. In some implementations, the proximity sensor can be a reed switch or hall effect sensor, which is activated by a magnet embedded in the puck or the like. Other suitable types of proximity sensors (e.g., an optical sensor, a radio frequency identification (RFID) detector for detecting an embedded RFID chip or a detector for detecting an embedded near field communication chip) can also be used. The degree of precision required to activate the reed switch or other sensor (and thus deactivate the light source 115) can be adjusted based on the magnetic strength of the magnet embedded in the puck, the proximal sensitivity of the sensor, or through other suitable techniques. As one example, different pucks having different sized or strength magnets, corresponding to different degrees of required precision, can be used depending on the user's skill level, desired challenge level, or type of training routine. In alternative implementations, the training board 100 can use other techniques for adjusting the level of precision required to deactivate the light source 115. For example, each light source 115 may have a plurality of proximity sensors (e.g., spaced around the periphery and/or at varying distances from the center of the light source 115). In such an implementation, the microcontroller can control the level of precision required (or can simply record the level of accuracy) based on the number and/or location of the proximity sensors that are activated by the puck (e.g., a higher level of desired precision can require activating a proximity sensor located in the center of the light source 115, while a lower level of precision can be satisfied by activating any one of a plurality of proximity sensors located around the periphery of the light source 115). In other implementations, the voltage level signal from a hall sensor can indicate a degree of proximity and different voltage levels necessary to count as a detection can be used to adjust the level of precision required. Other techniques for adjusting the level of challenge accordingly to skill level, or for working on different skills can include using different sized or weights of pucks, balls, or the like, which, in some cases, may necessitate using a different sized magnet.

Scoring of the user's performance by software running on the microcontroller (or on another device) can be based, at least in part, on how quickly the user delivers the puck to the correct location. Scoring can also be based on whether the puck is detected by one or more other proximity sensors other than the proximity sensor associated with the currently illuminated light source 115. For example, detection of the puck by a number of proximity sensors that are not generally in line with a path from a preceding light source 115 to the currently illuminated light source 115 may suggest a lack of control of the puck and can result in a deduction from a maximum possible score for delivering the puck to the appropriate location. In some implementations, scoring can further be based on the degree of precision in cases where varying degrees of precision in delivering the puck to the correct location is detectable.

FIG. 1A depicts a training board 100 with two interconnecting mats 105, including a first mat 105 a and a second mat 105 b connected at an interface joint 140. Each mat 105 includes an interlocking interface on one edge, thereby allowing the two mats 105 to be physically secured to one another. The connection between the first and second mats 105 a and 105 b can further include a physical communication connection that enables a microcontroller embedded in one of the mats 105 (e.g., mat 105 a) to communicate with light sources 115 and proximity sensors in the other mat 105 (e.g., mat 105 b) via internal wiring embedded in the mats 105. For example, electrical contacts in each mat 105 can be situated such that, when the mats 105 are physically interlocked, an electrical connection between the mats is formed to enable electrical communication between the mats 105. In this manner, the microcontroller in one of the mats 105 can control the light sources 115 in both mats 105 a and 105 b and can receive or detect signals from the proximity sensors in both mats 105 a and 105 b.

FIG. 1B depicts a training board 100 with three interconnecting mats 105, including the first mat 105 a and the second mat 105 b of FIG. 1A and an expansion mat 105 c installed between the first and second mats 105 a and 105 b. The first mat 105 a is connected to the third mat 105 c at a first interface joint 140, and the second mat 105 b is connected to the expansion mat 105 c at a second interface joint 140. The expansion mat 105 c includes an interlocking interface on two edges, thereby allowing the expansion mat 105 c to be physically secured to both the first and second mats 105 a and 105 b. The expansion mat 105 c can also include physical communication connectors that enables a microcontroller embedded in one of the mats 105 (e.g., mat 105 a) to communicate with light sources 115 and proximity sensors in the other mats 105 (e.g., mats 105 b and 105 c) via internal wiring embedded in the mats 105. For example, electrical contacts in each mat 105 can be situated such that, when the mats 105 are physically interlocked, an electrical connection between the mats is formed to enable electrical communication between the mats 105 (i.e., the internal wiring of the expansion mat 105 c allows signals to be passed through from the first mat 105 a to the second mat 105 b, and vice versa). In this manner, the microcontroller in one of the mats 105 can control the light sources 115 in all three connected mats 105 a, 105 b, and 105 c and can receive or detect signals from the proximity sensors in all three mats 105 a, 105 b, and 105 c. In some implementations, additional expansion mats similar to expansion mat 105 c (with or without embedded lights and sensors) can also be used, thereby further increasing the surface area over which a user can practice, which, in turn, can increase the level of intensity and difficulty of any practice. Such expansion also allows the training board 100 to be configured for different sized players or players of different skill levels. Expanding the training surface area allows larger players to train on a surface appropriate to their size or allows a player of smaller stature with very high skill level to refine skills over a more challenging, larger training area. In some cases, expansion of the training board 100 may allow two (or more) users to train together on opposite ends of the training board 100 to add an element of passing back and forth to deliver the puck to the currently illuminated lighting source 115, with a shared score or, in some implementations, individual scores for each end of the training board 100.

In an example implementation, the mats 105 can be square or rectangular units (e.g., around 30-36 inches in width and length), and each mat 105 can contain at least five light sources 115. As illustrated in FIG. 1B the first and second mats 105 a and 105 b contain seven light sources 115, while the expansion mat 105 c contains eight light sources 115. The light sources 115 can illuminate with a particular color or can have different possible colors (e.g., the light source 115 can change colors after a predetermined time to indicate that the available score is decreasing, to signify a string of successfully delivering the puck to the appropriate location, or for other purposes).

Although the system is described herein primarily in connection with hockey and the use of a puck, other configurations are also possible. For example, the training board 100 can instead be implemented in a vertical configuration (e.g., in a net). In some implementations, the training board 100 is. In addition, instead of a puck, a ball or other playing object (e.g., with an embedded magnet) can be used in either a vertical or horizontal configuration.

FIG. 2 is an illustrative diagram of an interactive sports training system 200. The training system 200 includes a training board 205 and a mobile device 210 (e.g., a smartphone or tablet). The training board 205 can be, for example, the training board 100 shown in FIG. 1B, with an expansion mat 215 interconnected between two end mats 220. The mats 215 and 220 have a planar playing surface 225 that overlays light sources and proximity sensors, which are hidden from view in this figure by the playing surface 225. The mobile device 210 communicates with the microcontroller of the training board 205 via a wireless connection 230 (e.g., a short-range communication channel, such as Bluetooth®, UHF channel, or WiFi) through which the microcontroller can authenticate a mobile device 210. The mobile device 210 (or another suitable computing device) is loaded with a software application (an “app”) that displays a user interface 235, which allows a user 240 (e.g., a parent, coach, or player) to interact with the training board 205 to select training routines, program new routines, load the routines into memory in the training board 205, view scores or ratings, view statistics or historical progress, adjust settings, and share information with others. The training board 205 can store some routines that can be used without connecting to the app on a mobile device 210. In some implementations, the app can further communicate with a centralized server or a cloud-based service to download new or incremental training routines or historical data and to upload statistics, scores, ratings, custom-developed training routines, setting information, and the like. In some implementations, the app can be a thin-client application, which connects to a centralized server or distributed server system that provides at least some of the software operations (e.g., calculating scores or detailed statistics). In alternative implementations, the app can be a fully functional app, although the app can communicate with a server system for updates, to store or retrieve information to or from the server system, and the like. AI in the app or at the server system can use user performance data to recommend new training protocols or routines. In alternative applications, the training board 205 can communicate more directly through a WiFi, cellular, or other network and to the server system, without communicating through a mobile device 210. In some such implementations, the training board 205 can communicate with the mobile device 210 through the server system, which also communicates with the mobile device 210 through a WiFi, cellular, or other network. In alternative implementations, communication occurs between the training board 205 and a server system without using an intervening mobile device 210. In such an implementation, the training board 205 can have its own control interface or control can be accomplished through another computing device.

The user interface 235 of the app can also allow the user 240 to start and stop training routines for a player 245, who moves a puck 250 across the training board 205 to deliver the puck 250 to locations indicated by illuminated light sources embedded (e.g., contained at or below the playing surface 225) within the training board 205. Data relating to player performance can be sent from the training board 205 to the mobile device 210. In various implementations, scores or analysis of performance can be calculated by the microcontroller in the training board 205, by the app, or by centralized or distributed servers accessed via the Internet. In some implementations, the training board 205 can be used without a smartphone app or other connectivity (e.g., by providing training routines or games that are pre-stored on the training board 205).

In many cases, the user 240 and the player 245 can be the same individual. In other cases, the user 240 and the player 245 can be different individuals, and in such cases, a user 240 (e.g., a coach or parent) can have “read only” access to display data. In some implementations, the training board can include controls that allow a user 240 or the player 245 to perform at least some functions on the training board 205. For example, the training board 205 can include a start and/or stop button to allow a training routine selected through the app can be started by the player 245 without having to use the mobile device 210. In some implementations, the training board 205 can include additional controls (e.g., allowing selection among multiple training routines loaded onto the training board 205) and/or a display, which can display a score, a timer (e.g., to display a remaining time in a training routine), statistics, and/or other information. In some implementations,

Different training routines may be designed to focus on different skills and can have varying levels of difficulty. For example, the training routines can be designed to improve a user's hand-eye coordination, stick handling, object maneuvering, passing and/or shooting skills and accuracy. The training routines may be defined by data (e.g., a program) that specifies a sequence and/or timing of illumination of the lighting sources and/or audible indicators from a speaker. In some cases, some training programs do not define a static sequence and/or timing but can include decision trees or contingencies that change the training routine based, for example, on performance of the player 245 or, in an online “head-to-head” competition, based on performance of another local or remote player on another training board. Software or firmware running on the microcontroller of the training board 205 can interpret the program and execute the training routine on the training board 205. In some implementations, such as when the training program does not define a static sequence or timing, execution of the training routine may further involve communication with the mobile device or with a remote server, which can provide additional instructions for altering the training routine.

FIG. 3 is a flow chart depicting an example method 300, which may be executed by the software app 302 on a mobile device 304. The mobile device 304 includes an antenna 306 that can be used to communicate with a training board. The mobile device 304 can also connect to a cloud environment 308 (e.g., a remote centralized or distributed server, or a peer-to-peer sharing connection) via the Internet 310, which can be accessed, for example, through a cellular network or a WiFi connection (e.g., through the antenna 306 or through a separate antenna). The software app 302 can facilitate playing online or offline. Online play can enable, for example, quasi-real-time “head-to-head” competition against another player (e.g., using the same training routine on a different training board), or can otherwise enable others to remotely monitor performance (e.g., by watching a graphical re-creation of the movement of the puck) based on data sent from the training board through the mobile device 304 over the Internet 310 to the cloud environment 308. Offline play can enable a similar player experience without necessarily requiring a reliable Internet connection or immediate uploading of performance data to the cloud environment 308. Performance data, including scores, statistics, or a record of the sequence of play can, however, be stored on the mobile device 304 or on the training board and sent to the cloud environment selectively by a user or automatically at preset times, upon completion of each game, or once connected to the Internet (e.g., based on a stored user preference).

When a user initiates a training session through the software app 302 (at 312), the user can be prompted as to whether to play online at 314. When the user selects online play through a user interface on the mobile device 304, a determination is made as to whether the user is a new user at 316. If the user is a new user or the training board is not already registered, the user is prompted to register with an online service (e.g., to create an account for the individual user and/or the training board) at 318. In some implementations, a new user who has not previously registered with the online service may initially be required to select the online option at 314. In other implementations, offline play may be allowed. In some implementations, registration may be required to create an account and store data associated with that account in the cloud environment 308. In the interim, performance data can be stored (e.g., on the mobile device 304) until an account is created, and the performance data can be uploaded to the cloud environment at a later time.

Once the registration process is completed at 318, the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 320. The software app 302 can communicate with the training board (e.g., with a built-in microcontroller or microprocessor in the training board) to perform a system check at 322, which can confirm the current onboard software or firmware installed on the training board, whether the mats of the training board are properly interconnected to one another, whether the proximity sensors and lighting sources are responding properly, the current configuration of the training board (e.g., the number of interconnected mats), and the like. Once the system check is completed, the software app 302 can determine whether a training board software or firmware update is needed at 324. If so, update data (e.g., downloaded from the cloud environment 308) is sent to the training board at 326. Once the update is complete, or if no update is needed, training or game play can be performed at 328. As described above, training or game play can involve initiating and executing a selected training routine on the training board. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 330 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.

If, after online play is selected at 314, the user is not a new user (as determined at 316), the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 340. The software app 302 can communicate with the training board to perform a system check at 342, similar to the system check described above in connection with operation 322. Once the system check is completed, the software app 302 can determine whether a training board software or firmware update is needed at 344. If so, update data is sent to the training board at 346. After the update is complete, or if no update is needed, training or game play can be performed at 348. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 350 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.

If offline play is selected at 314, the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 360. The software app 302 can communicate with the training board to perform a system check at 362, similar to the system check described above in connection with operation 322. Once the system check is completed, training or game play can be performed at 364. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 370 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.

The cloud environment 308 can store a variety of different types of data that can be uploaded from users, mobile devices, and/or training boards, or that can be stored for downloading to mobile devices and training boards. The data can include game data (e.g., statistics, player ratings, etc.); user data (e.g., subscription level, demographics, social media links, etc.); UX/UI content (e.g., dashboard, game templates, etc.); website data and pages (e.g., including backend); AI analysis software (e.g., for use in learning and predicting player performance, equipment recommendations, and trend analysis); content management system software (e.g., user game creation data, archives, etc.); stakeholder notification software (e.g., for sending SMS, text, and email notifications and messages to stakeholders, such as users, parents, coaches, third parties and vendors etc.); and sharing software (e.g., links to social network platforms).

FIG. 4 is a conceptual diagram of a training board 400. The training board 400 includes a playing surface 405, a printed circuit board (PCB) 410, and a plurality of hall sensors 415. The playing surface 405, as described above, can provide a planar surface (or other suitable surface according to the intended training use). The PCB 410 can be built into or contained in the training board 400 and can be attached underneath the playing surface 405 or otherwise contained within a housing attached to the playing surface 405. The hall sensors 415 (or other types of sensors, as discussed above) can be embedded in or attached underneath the playing surface 405 in sufficiently close proximity to the playing surface 405 to detect a magnet embedded in a playing object on (or, in some cases, near—e.g., just above) the playing surface 405. The hall sensors 415 can be connected in series by serial cables 420 that connect to the PCB 410. In alternative implementations, other types of communication interfaces other than serial communication (e.g., parallel) can be used. Although the hall sensors 415 are depicted in a generally linear configuration for convenience of illustration, the hall sensors 415 can be distributed across the playing surface 405 in any suitable manner (see, e.g., FIGS. 1A and 1B) in accordance with desired target locations on the playing surface 405. As discussed above, other types of sensors (i.e., besides a hall sensor) can be used.

The PCB 410 includes a number of functional modules. In some implementations, the functions of the modules can be combined in a fewer number of separate modules, or the functions of each module can be distributed among multiple physical or conceptual modules without departing from the intended meaning of a module as used herein. The modules can be implemented as software, firmware, hardware, or a combination thereof. A wireless module 425 can be configured to handle the transmission and reception of signals to and from the PCB 410 of the training board 400 (e.g., to and from a mobile device via a short-range radio frequency signal) through a connected antenna 430. A buttons module 435 can be configured to receive and interpret signals received from a control panel on the training board 400. An LCD module 440 can be configured to control a display interface on the training board 400. In some implementations, the display interface can be a touch screen and can thus the display interface and the control panel can be combined in a single component. A USB module 445 can be configured to control one or more USB ports that can be used, for example, to provide a wired connection to the PCB 410 as an alternative to the wireless connectivity (e.g., to reinstall software or firmware in cases of device failure, or to transfer data stored on the training board 400 to a computing device). A power module 450 can be used to manage power usage from, and charging of, an internal battery and to manage power usage and charging from an external power supply (e.g., a 120 volt AC power supply or a 5 volt DC power supply). A sensor module 455 can be configured to receive signals from the hall sensors 415 via the serial cables 420. In some implementations, the sensor module 455 can also send communications to the hall sensors 415 (e.g., to confirm proper operation). Serial communication provides a low-cost technique for communications, although other types of communication can also be used and managed by the sensor module 455. A microcontroller unit (MCU) module 460 can perform overall control of the various modules on the training board 400 and can include memory that stores operating software and training programs. Alternatively, a separate memory can also be used and accessed by the MCU module 460. A speaker module 465 can be configured to control a speaker, which can provide audio alerts or other audio signals (e.g., to signal detection of a puck by an appropriate hall sensor 415, to alert a user to an expiring timer, or for providing other feedback to a user). In some implementations, the speaker module 465 can be used to play audio alerts, audio signals, or other audible information through a mobile device, Bluetooth speaker, or other external device.

FIG. 5 is a process flow diagram of a method 500 that can be performed by the software app on a mobile device. Upon startup of the app at 505, a user is presented with a display screen that asks the user to sign in or sign up for the service at 510. If the user has an account associated with the software app, the user can sign into the service using his or her credentials (e.g., username and password) at 515. If the user does not have an account, the user is presented with a service sign-up screen where the user can enter the necessary information to complete the service sign up process at 520. For example, the user can input demographic information and select and/or pay for a subscription level. The sign-up data is transmitted to servers in the cloud via the Internet at 525. In some implementations, a separate sign-in process for the app can also be used in which the user can sign into the app at 530. If the user needs to sign up with the app, the user can be presented with a screen to setup a profile at 535. Once the user has an account and enters appropriate credentials, the account is validated at 540, and the user is presented with the software app's main screen at 545. In some implementations, a user can also gain access to the main screen without signing in. In such a case, location information can be recorded at 550 to enable, for example, the data to later be associated with the proper account. Once the user is presented with the main screen at 545, the user can select among multiple available options, including managing alerts (e.g., notifications via SMS, text, etc.) at 555; playing a game or training routine at 560; uploading, viewing and sharing videos at 565; and other features at 570 (e.g., creating and uploading training games).

FIGS. 6A and 6B illustrate two example configurations of a training board 600 having two and three interconnected mats or training surfaces, respectively. FIG. 6A includes a two interconnected end mats 605, while FIG. 6B includes two end mats 605 each interconnected with an expansion mat 610. Each end mat 605 includes an interconnection mechanism 615 at one end (in the area indicated by dashed lines). For example, the interconnection mechanism 615 can be internal to the end mats 605 or on a bottom side of the end mats 605 and can be constructed as interlocking male tabs and female slots. Other constructions of the interconnection mechanism 615 are also possible. To prevent inadvertent separation of the mats 605, the interconnection mechanism 615 can also have a release tab or button that must be pushed to enable separation of the interlocking tabs and slots. Alternatively, male tabs and female slots can be formed similar to puzzle pieces such that the end mats 605 can be separated by lifting one end mat 605 relative to the other end mat 605.

At least one of the end mats 605 includes a microcontroller unit 620 that can provide main control of the training board 600. The microcontroller unit 620 can communicate with a memory 625. The memory 625 can be external or internal to the microcontroller unit 620 (or there can be multiple memories) and can store software or firmware instructions for controlling operation of the training board 600 and instructions for specific training routines. The microcontroller unit 620 can further communicate with an interface 630, which can include a user interface (e.g., display screen, control buttons or keys, and/or a touchscreen), which can display information (e.g., a score or timer) and receive user input (e.g., a start or stop instruction or a selection among training routines previously loaded into the memory 625). The interface 630 can include a wireless interface for communicating with a mobile device (e.g., to receive start/stop instructions input through software on the mobile device, downloading additional training routines, and communicating scores and other performance data). In some implementations, these functions can be combined in a single unit, while in other implementations, the training board 600 can include multiple separate interface units.

The microcontroller unit 620 can communicate with each of a plurality of interactive targets 635 via one or more communication cables 640. The interactive targets 635 can include a visual indicator (e.g., an LED light source) and a detector (e.g., a reed switch or other proximity sensor). As described above, the visual indicator of each interactive target 635 can be used to signal to a user that a game accessory (e.g., a ball, puck, bean bag, or the like) is a current target on the training board 600. The detector of each interactive target 635 can detect when the game accessory is delivered to an area of the training board 600 proximate to the interactive target 635. The microcontroller unit 620 can send a signal via the cables 640 to selectively and individually activate the visual indicator in each interactive target 635. In addition, the detector in each interactive target 635 can send a signal via the cables 640 to the microcontroller unit 620 when a game accessory is detected in the vicinity of the interactive target 635. In response to receiving such a signal from the appropriate detector, the microcontroller unit 620 can send a signal to the interactive target 635 to deactivate the visual indicator.

The interconnection mechanism 615 of each end mat 605 includes a physical cable interconnection 645 that provides a connection between the cables 640 in each end mat 605. The cable interconnection 645 can include physical contacts suitable to electrically connect the cables 640 in the end mats 605. Accordingly, signals from the microcontroller unit 620 in one end mat 605 can be transmitted through the cables 640 to interactive targets 635 in the other end mat 605. In some implementations, each end mat 605 can include a microcontroller unit 620, memory 625, and interface 630. In such an implementation, the microcontroller units 620 can communicate through the cables 640 and cable interconnection 645 to negotiate which one will act as a primary microcontroller unit 620. The other microcontroller unit 620 can remain dormant or can operate under control of the primary microcontroller unit 620 to, for example, control a display on a second interface 630, forward user interaction with control buttons on the second interface 630, and the like.

In some implementations, the cables 640 can include a shared communication bus that is used to implement a serial communication protocol. In other implementations, the cables can include multiple communication buses to implement parallel communications and/or separately enable each interactive target 635. In addition, the cables can also include a separate power supply wire to, for example, provide power for illuminating LED light sources and provide power to control units in each interactive target 635.

The two-mat configuration of FIG. 6A can be transformed into the three-mat configuration of FIG. 6B by disconnecting two end mats 605 and interconnecting the expansion mat 610 in between the two end mats 605. The expansion mat 610 includes interconnection mechanisms 615 at each end that enable the expansion mat 610 to be interconnected with each of the end mats 605. Additional expansion mats 610 can also be in a similar manner to further expand the length of the training board 600. The expansion mat 610 includes additional interactive targets 635, communication cables 640, and cable interconnections 645 that enable the microcontroller unit 620 to communicate with each of the plurality of interactive targets 635 in both the end mats 605 and the expansion mat(s) 610. In some implementations, other configurations are also possible. For example, additional interconnection mechanisms 615 and cable interconnections 645 can be included on the sides of the mats 605 and 610 to expand the width of the training board 600.

To control the interactive targets 635 in different configurations, the microcontroller unit 620 first discovers the number of interactive targets 635 by exchanging data (e.g., in frames) between the microcontroller unit 620 and the interactive targets 635. Based, at least in part, on the known potential configurations of the training board 600, and/or on unique identifiers associated with each interactive target 635, the microcontroller unit 620 can determine the number of interactive targets 635 in a current configuration, as further discussed below. The microcontroller unit 620 can then select training routines appropriate for the current configuration. For example, the microcontroller unit 620 may select among a subset of available training routines that match the current configuration, while omitting training routines that correspond to other configurations. In some implementations, the microcontroller unit 620 can store or can generate different sequences for a selected training routine based on the number of interactive targets 635 and/or the current configuration of the training board 600. However, because the sequences differ for a given training routine in such a situation, the result is a different training routine when executed on the training board 600. In some implementations, the microcontroller unit 620 selects an appropriate training routine in “consultation” with a software app executing on a wirelessly connected mobile device (e.g., by sending data relating to a number of interactive targets 635 and/or a current configuration of the training board 600, and receiving instructions for, or an identification of, an appropriate training routine from the mobile device).

FIG. 7 depicts a representation of an interactive target 700. The interactive target includes a target microcontroller unit 705 that controls activation and deactivation of a light 710 (e.g., by turning power to the light 710 on and off) and that receives signals from a sensor 715 (e.g., by detecting an open or closed circuit on a reed switch sensor). The sensor 715 can be located behind or beside the light 710, if desired, to avoid casting a shadow. The target microcontroller unit 705 can control activation and deactivation of the light 710 in response to instructions received from a main microcontroller unit (e.g., microcontroller unit 620 of FIGS. 6A and 6B) via a cable 720. The target microcontroller unit 705 can also send signals via the cables 720 to the main microcontroller unit when the sensor 715 detects a game accessory in the vicinity of the interactive target 700. Furthermore, the target microcontroller unit 705, in some implementations, can communicate with similar microcontroller units in adjacent interactive targets (see FIGS. 6A and 6B) for purposes of configuration discovery and receipt and forwarding of data and signals from other interactive targets. In some implementations, the target microcontroller unit 705 can buffer data to avoid data collisions in cases of shared data lines. For example, the interactive targets 700 can be connected in a daisy chain serial communication configuration, where each target microcontroller 705 receives and passes along data with target microcontrollers of adjacent interactive targets. In such a configuration, data can be passed along the chain until it reaches the intended destination. Data can be transmitted in data packets formatted in a predetermined manner to identify the intended destination. For example, using data flags (e.g., with a different flag position associated with each interactive target), counters (e.g., that are decremented or incremented by each target microcontroller 705 to indicate how far down the chain the packet should be delivered or, for data intended for the main microcontroller unit, how far down the chain the packet originated), and the like, each target microcontroller 705 can determine whether a particular data packet includes data intended for that target microcontroller 705 or whether the data packet should be passed along to the next interactive target. Likewise, data packets intended for the main microcontroller unit can identify from which interactive target the data packet originated. In alternative implementations, parallel communication techniques or addressing schemes can be used.

In some implementations, data packets that control the light 710 and data packets that indicate detection of a game accessory by the sensor 715 can be sent on the same data line. In other implementations, separate data lines can be used. In addition, different controllers can be included in the interactive target for the lights 710 and the sensors 715. The lights 710 and the corresponding sensors 715 can be contained in a shared interactive target housing or can be separate components (e.g., located in close proximity to one another).

FIG. 8 is a flow diagram of a process 800 for selecting a training routine appropriate for a current training board configuration. The training board is powered on at 805. Upon power up, when each detector (e.g., the target microcontroller unit 705 of FIG. 7 ) receives power, the detector sends a data frame to a main microcontroller unit (e.g., microcontroller unit 620 of FIGS. 6A and 6B) at 810. The data frame, for example, serves to alert the main microcontroller as to the presence and status of the detector. To distinguish different detectors in a daisy chain configuration, for example, where data frames are passed from one detector to the next, each detector can modify the data frame to increment a counter before passing the data frame to the next detector in the chain. In this manner, when the data frame reaches the main microcontroller unit, the counter in the data frame indicates how far down the chain the data frame originated. In implementations where multiple paths are possible (e.g., where it is possible to have a split, such as if training boards can be added in more than one dimension), flags or other techniques can be used to identify the split. In some implementations, interconnections (e.g., cable interconnections 645 in FIGS. 6A and 6B) between mats can also include microcontrollers that separately indicate whether an interconnection exists. Similarly, detectors can also be used to detect whether other attachments or components (e.g., the rebound bars 125 of FIG. 1 ) are present. Other techniques, such as unique identifiers can also be used to distinguish different detectors or other components.

Based on the received data frames, the main microcontroller unit determines a number of detectors in the current training board configuration at 815. In addition, the main microcontroller may determine the presence of other components or interconnections based on data in the received data frames. Using this data (i.e., the number of detectors and/or the presence of other components or interconnections), along with knowledge of the possible types of mats or other components), the current training board configuration is determined at 820. This determination can be made by the main microcontroller unit independently or the main microcontroller unit can determine the current configuration by sending data over a wireless interface to a mobile device, which can process the data to identify the current configuration. Based on the current configuration, the main microcontroller unit or the mobile device identifies a subset of available training routines appropriate for the current configuration, and a training routine is selected automatically or manually by a user from the identified subset of training routines at 825. The selected training routine is executed at 830.

FIG. 9 is a flow diagram of a process 900 for executing a training routine on a training board and analyzing performance. A selection of a training routine is received at 905. The selection can be made among a plurality of available training routines based on a current configuration of the training board. In addition, the selection can be made by a user through an app on a mobile device or on an interface of the training board. The selection can be made from a subset of available routines identified based on a set of parameters selected by a user (e.g., relating to a skill level, difficulty level, training goals, age, height, platform configuration, etc.). The training routine is initiated at 910. For example, a user can select a start option on the training board or on an app of a mobile device. Activation signals are sent to LED lights or other visual indicators on the training board in accordance with a sequence defined by the selected training routine at 915. The activation signals can be sent by a microcontroller unit of the training board. As a user delivers a game accessory (e.g., a ball, puck, or other object) to locations on the training board, detectors sense the presence of the game accessory in the vicinity of the detectors and send data frames containing detection notifications, which are received (e.g., in virtual real time) by the microcontroller unit at 920. The microcontroller unit records the sequence and timing of the detections in memory at 925. In some implementations, the sequence and timing data includes data relating to a degree of correspondence between the sequence and timing of the detections and the sequence of activation of the LED lights (e.g., how long after activation of each light did the detection occur). During execution of the training routine or after the training routine is completed, the microcontroller unit sends the sequence and timing data (or a summary thereof) to the mobile device at 930. In some implementations, the microcontroller unit can perform at least some pre-processing of the data (e.g., to calculate a basic score), wherein the mobile device analyzes the received sequence and timing data at 935 to, for example, generate scoring, analyze performance, compare performance to prior performance by the user or to other players, identify additional training routines or skills that the user should focus on, or other analytics. In some implementations, the mobile device sends the raw sequence and timing data or the results of analysis to a remote server system to perform additional analysis, to store the data in association with the user's account, to make the data available to other users, or for other purposes. In some implementations, the analysis performed by the store data relating to a degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components.

FIG. 10 is a conceptual diagram of a content management system (CMS) 1000 that resides on a cloud network or in a centralized or distributed server. The CMS 1000 can be accessed through the Internet 1005. Interaction with the CMS 1000 can be performed through one or more websites 1010 (or through a software application on a computing device or an app on a mobile device). Furthermore, information can be sent via email 1015 or other communication channels and can be accessed by third party applications 1020 through, for example, an application programming interfaces (APIs). Content creators 1025 (e.g., coaches, parents, players, or third parties) can create content (e.g., videos or training routines) for their own use or for sharing with others that can be uploaded or otherwise stored on a content database 1030. Users of the training board and/or the software app can also act as content creators 1035 with respect to their own personal data. For example, different user devices 1040 (e.g., mobile devices running the software app or computing devices accessing the CMS through a website or computers accessing the CMS 1000 through a website) can store user data (e.g., demographics, preferences, and friends addresses) in a user database 1045 and game data (e.g., performance statistics, gameplay details, or gameplay video or recreations of gameplay based on received sequence and timing data) in a game database 1050. In some implementations, gameplay actions or successfully completing challenges can be recorded in blockchain or used to earn non-fungible tokens (NFTs) or virtual coins, which can be stored in blockchain. In some implementations, NFTs or virtual coins can be used, for example, to unlock additional features or games, to exchange for merchandise or sporting event tickets, or to verify a user's performance history. Once content (e.g., training routines) is uploaded (at 1055) to the cloud network, administrators can perform functions that can include, for example, review of content by marketing managers (at 1060) and legal professionals (at 1065). If the content is approved (at 1070), the content can be published to the software application and made available on websites 1010, to email requests 1015 and third-party partners 1020 (e.g., vendors, equipment manufacturers etc.). Additional analysis (e.g., of game data in the game database 1050 to further assess performance or make recommendations) can also be performed by an AI analysis engine 1075.

FIGS. 11A and 11B are conceptual diagrams of a website environment 1100 through which data can be accessed by various types of users. For example, data (e.g., game data; user data; UX/UI content, such as a dashboard, game templates, and the like; websites) stored in, and software functionality (e.g., AI analysis, such as learning and predicting player performance, equipment recommendations and trend analysis; CMS functions, dynamic engagement, and email communication tools) supported in, the cloud environment 1105 can be accessed through various web portals 1110. Once a user logs in through a login module 1115 of the web portal 1110, the user can access content data stored in a content database 1120, user data stored in a user database 1125, and game data stored in a game database 1130 through a user interface (UI) module 1135, assuming the user has the necessary permissions to access the data. Different types of users can have access to different types of information or tools. For example, a coach portal 1140 supports features that analyze player data (scores, ratings etc.), allows coaches to modify user's existing games if given permission to do so, create and upload new games for users, and send messages to other stake holders (e.g., parents, players etc. via text messages, SMS, email, etc.). A parent portal 1145 can allow parents to view user progress (e.g., game performance) and receive coach messages (e.g., via text messages, SMS, email, etc.).

A vendor portal 1150 can include features that allow vendors to view user game data, analyze player data (e.g., scores and ratings), analyze game data, make predictions relating to equipment performance with AI assistance, and make marketing decisions. A recruiter portal 1155 can include features that allows recruiters to view user game data (e.g., performance) and make recruiting decisions.

Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions tangibly stored on a computer readable storage device for execution by, or to control the operation of, data processing apparatus. In addition, the one or more computer program products can be tangibly encoded in a propagated signal, which is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer readable storage device can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.

The term “computing device” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The computing device can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, or a combination of one or more of them. In addition, a computing device can employ various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, mobile device, a tablet computer, a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; and magnetic disks, e.g., internal hard disks or removable disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., an LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackpad, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

Implementations of the subject matter described in this specification can be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such backend, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many implementation details, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular implementations of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Thus, particular implementations of the invention have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous. 

1. An interactive training apparatus comprising: a plurality of platform components having a substantially flat upper surface, with each platform component adapted to interconnect with at least one of the other platform components, wherein each of the platform components includes: one or more visual indicators attached to the platform component and situated at or below the upper surface of the platform component; and a detector attached to the platform component substantially adjacent to each of the one or more indicators, wherein the detector is adapted to detect a presence of a game accessory in proximity to the detector; a main control unit, wherein the main control unit is adapted to receive data frames from the detectors in the plurality of platform components and to determine a quantity of detectors in an interconnected set of platform components based on data contained in the data frames; a memory communicably connected to the main control unit, wherein the memory stores a plurality of routines; and wherein the main control unit is adapted to execute a selected routine based at least in part on the determined quantity of detectors, with the selected routine defining a sequence of activation of the indicators in the interconnected set of platform components.
 2. The interactive training apparatus of claim 1 wherein the detectors in the plurality of platform components communicate with the main control unit via at least one communication bus.
 3. The interactive training apparatus of claim 1 wherein the detectors in the plurality of platform components communicate with the main control unit via a daisy chain configuration.
 4. The interactive training apparatus of claim 1 wherein the main control unit is adapted to identify a configuration of the interconnected set of platform components based on at least one of the data contained in the data frames received from the detectors in the plurality of platform components or data received from a connector.
 5. The interactive training apparatus of claim 1 wherein each of the detectors comprises one of a reed switch or a hall effect sensor adapted to detect a game accessory that includes an embedded magnet.
 6. The interactive training apparatus of claim 1 wherein each of the detectors is adapted to detect a game accessory that includes at least one of an embedded radio frequency identification chip or an embedded near field communication chip.
 7. The interactive training apparatus of claim 1 wherein the main control unit is adapted to: receive data identifying a sequence and timing of the detector detecting a presence of a game accessory in proximity to the detector during execution of the selected routine; and store data relating to a degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components.
 8. The interactive training apparatus of claim 1 wherein the main control unit is adapted to wirelessly communicate with a software application installed on a mobile device to: receive an identification of a selected routine from a subset of available routines identified based at least in part on the determined quantity of detectors; receive instructions for initiating the selected routine; and communicate data relating to the degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components.
 9. The interactive training apparatus of claim 1 further comprising at least one platform attachment adapted to connect to the platform, wherein the main control unit is adapted to detect a presence of the at least one platform attachment and to execute a selected routine based at least in part on the presence of the at least one platform attachment based on data received from a platform attachment detector adapted to detect a presence of the at least one platform attachment.
 10. An interactive training apparatus comprising: one or more indicators embedded in a platform; a plurality of detectors embedded in the platform substantially adjacent to each of the one or more indicators, wherein each detector is adapted to detect a presence of a game accessory in proximity to the detector; a main control unit adapted to receive data indicating a presence of a game accessory in proximity to each of the detectors; a memory communicably connected to the main control unit, wherein the memory stores one or more routines; wherein the main control unit is further adapted to: wirelessly communicate with a mobile device executing a software application adapted to communicate with the main control unit; execute a selected routine defining a sequence of activation of the indicators in the platform; and communicate, to the mobile device, results data relating to a degree of correspondence between the detection of the presence of a game accessory in proximity to the detector and the activation of the indicators in the platform; and wherein the selected routine defines a sequence of activation of the indicators that causes at least two indicators to provide different indications, wherein a detection of the presence of a game accessory in proximity to a detector associated with an indicator having a first indication results in a different scoring impact than a detection of the presence of the game accessory in proximity to a detector associated with an indicator having a second indication.
 11. The interactive training apparatus of claim 10 wherein the main control unit is further adapted to wirelessly link to the software application using a short-range wireless connection to authenticate a mobile device.
 12. The interactive training apparatus of claim 10 wherein the main control unit is adapted to receive one or more routines from the software application.
 13. The interactive training apparatus of claim 12 wherein the software application is adapted to communicate with at least one remote server to obtain the one or more routines.
 14. The interactive training apparatus of claim 10 wherein the software application is adapted to enable a user to generate the one or more routines.
 15. The interactive training apparatus of claim 10 wherein the software application is adapted to transmit the results data to a remote server for at least one of storage or analysis.
 16. The interactive training apparatus of claim 10 wherein the selected routine is selected in response to one or more commands from the software application identifying the selected routine.
 17. The interactive training apparatus of claim 16 wherein the identification of the selected routine identifies the selected routine from a plurality of available routines stored on one of a memory connected to the main control unit or the mobile device in wireless communication with the main control unit.
 18. The interactive training apparatus of claim 17 wherein the selected routine is selected from a subset of the plurality of available routines, with the subset of available routines identified based on a set of parameters selected by a user.
 19. The interactive training apparatus of claim 17 wherein the selected routine is selected from a subset of the plurality of available routines, with the subset of available routines identified based on a configuration of the platform identified by the main control unit.
 20. The interactive training apparatus of claim 19 wherein the main control unit is adapted to detect a configuration of the platform based at least in part, on data contained in data frames received from the plurality of detectors. 